パッケージ (Java)
パッケージ名とクラス名
パッケージ名はディレクトリ構造と対応づけられ,クラス名はファイル名と対応づけられる.
code:Car.java
// パッケージ宣言.この宣言に従ったディレクトリにjavaファイルを置く必要がある
package org.nkjmlab.lec.pj1;
public class Car {
}
上記の例では,package org.nkjmlab.lec.pj1; というパッケージ宣言をしている.
パッケージの起点となるディレクトリを srcとしたとき,src/org/nkjmlab/lec/pj1 というディレクトリに,Car.javaというファイル名で作成する必要がある.
異なるパッケージのクラスを利用するにはインポートが必要である.同一パッケージであれば必要ない.
配布されたJavaプログラムのパッケージ宣言/配置場所
配布されたJavaプログラムのパッケージ宣言は,教員の環境に合わせたものであるため,いい加減なディレクトリに置くと動作しない. 以下,上述のCar.javaを例とする.
方法1: 自分でパッケージ宣言を書き換えて,それに合わせてjavaファイルを配備する
自分で package jp.toho_u.st.a5511001; の様なパッケージ宣言に変更し,パッケージの起点となるディレクトリを srcとしたとき,src/jp/toho_u/st/a5511001 というディレクトリに,Car.javaというファイル名で配備する.
パッケージは個々人 (個々の組織) で衝突しないようにするのが慣例である.そのため,ドメインを反転したものをベースにした方式が用いられることが多い.(ただし,ハイフンが使えない,数字からはじまることが出来ないという制約があるため,適宜変更する必要がある.) 例 jp.toho_u.st.a5511001 方法2: 教員のパッケージ宣言に合わせてjavaファイルを配備する
上述したように,package org.nkjmlab.lec.pj1; というパッケージ宣言をしていれば,パッケージの起点となるディレクトリを srcとしたとき,src/org/nkjmlab/lec/pj1 というディレクトリに,Car.javaというファイル名で配備する.
方法3: デフォルトパッケージを使う (非推奨)
パッケージをこれまでこれを意識したことがない場合は,デフォルトパッケージを使っているということである.この場合はパッケージ宣言を省略出来る.すなわち,配布されたファイルのパッケージ宣言を削除すれば良い.
Nested Class (≒内部クラス)
詳細な参考資料